草庐IT

c++ - 虚函数的不同返回类型

全部标签

ruby - 按值对 Hash of Hashes 进行排序(并返回哈希,而不是数组)

我有以下哈希:user={'user'=>{'title'=>{'weight'=>1,....}'body'=>{'weight'=>4,....}........}}是否可以让用户按其子哈希的权重键排序?我查看了Hash.sort,但看起来它返回的是数组而不是我原来的哈希排序。 最佳答案 在Ruby1.9中,Hashes被排序,但是Hash#sort仍然返回Array的Array秒。想象一下!它确实意味着您可以在此基础上构建自己的排序方法。classHashdefsorted_hash(&block)self.class[sor

ruby - [square brackets] 在 Ruby 中有哪些不同用途?

我在Ruby中经常遇到方括号[]语法,但它似乎从来没有做同样的事情。任何人都可以列出所有方括号[]在Ruby中的不同用途,以便我的头脑能够理解这个看似无穷无尽的小符号吗?(一个符号怎么可能做这么多而不让Ruby解释器感到困惑?)例子:[]和[]=方法%q[...][1,2,3][0]散列["a"]=3ary=[]/[^A-Fa-f0-9]/“是一个字符串”[5,3] 最佳答案 方括号在两个严格上下文和一个可选上下文中:定义数组数组,即提供元素有序列表的数据结构,可以使用类似[1,2,3]的语法在代码中指定。这将创建一个包含三个元素1

ruby - 为什么 uniq!如果没有重复则返回 nil

我刚开始使用Ruby,我个人认为以下内容违反了“最小意外原则”。也就是说,引用自thedocumentation,那个独特的!“从self中删除重复元素。如果未进行任何更改(即未找到重复元素),则返回nil。”谁能解释一下,这对我来说似乎完全违反直觉?这意味着不是能够通过附加.uniq来编写下面的一行代码!为了结束第一行,我不得不写以下两行:hooks=IO.read(wt_hooks_impl_file).scan(/wt_rt_00\w{2}/)hooks=hooks.uniq或者我是否遗漏了一些更好的方法?编辑:我明白uniq了!修改其操作数。我希望这里的问题能更好地说明:hoo

Ruby String#scan 相当于返回 MatchData

正如问题标题中所述,Ruby字符串上是否有等效于String#Scan的方法?但不是只返回每个匹配项的列表,而是返回一个MatchData数组?例如:#Matchesasetofcharactersbetweenunderscorepairs"foo_bar__baz_hashbang".some_method(/_[^_]+_/)#=>[#<MatchData"_bar_"&rt,<MatchData"_baz_"&rt]或者任何我能得到相同或相似结果的方法都是好的。我想这样做是为了找到Ruby字符串中“字符串”的位置和范围,例如"goodbyeand"world"insid

ruby-on-rails - 安装 ruby​​ gems 后,运行新的 gem 返回 "Could not find"错误

全新的Ubuntu10.04安装:我在让我的gem安装过程正常运行时遇到了一些问题。每当我安装gem时,它都会通过一个漂亮、直接的过程,没有任何问题:$geminstallrailsSuccessfullyinstalledrails-3.2.21geminstalled然后验证版本,也许是一个简单的“rails-v”?不:$rails-v/home/pragone/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in`to_specs':Couldnotfindrailti

ruby - 为什么在 Ruby 中做同样的事情有那么多略有不同的方法?

我正在学习Ruby。我的背景是C++/Java/C#。总的来说,我喜欢这种语言,但我有点困惑为什么有这么多不同的方法来完成同一件事,每种方法都有自己略微不同的语义。以创建字符串为例。我可以使用''、""、q%、Q%或仅使用%来创建字符串。一些形式支持插值。其他形式允许我指定字符串定界符。为什么有五种创建字符串文字的方法?为什么我会使用非内插字符串?%语法相对于带引号的文字有什么优势?我知道Ruby中的冗余一定是有值(value)的,但我未经训练的眼睛看不清楚。请赐教。 最佳答案 WhywouldIeverusenon-interpo

ruby - RVM:如何使用来自不同 ruby 的 gem ?

我一直在使用RVM来管理我的ruby和gem。当我第一次安装RVM时,我安装的Ruby版本是1.9.2-p0。我最近安装了Ruby1.9.2-p136,它在RVM中创建了一个新的Ruby。我的问题是我想使用最新版本的Ruby,但我安装的所有gems都安装在1.9.2-p0目录下,因为RVM使gems在Rubies之间完全分开,并且我希望能够在我的新版本p-136中使用这些gem,而不必重新安装它们。有没有一种方法可以让我从p-0Ruby中获取gems以与我的p-136Ruby一起工作? 最佳答案 你可以在rvm中使用copy$rvm

ruby - 是否有Ruby函数可以对两组字符串进行异或运算?

我有两个字符串数组,我想找到不在两者交集的字符串集。我想要的是MATLAB中SETXOR的等价物:http://www.mathworks.com/help/techdoc/ref/setxor.html我将术语集与数组互换使用。当然,我本可以很容易地自己写出这个问题,但我想我应该问。 最佳答案 array1+array2-(array1&array2)比写问题要短...顺便说一下,R​​uby有一个类Set,所以最好不要将这个词用作数组的同义词。 关于ruby-是否有Ruby函数可以对

ruby - 为什么 Array.to_s 返回括号?

对于一个数组,当我输入:putsarray[0]==>text然而当我打字时putsarray[0].to_s==>["text"]为什么是括号和引号?我错过了什么?附录:我的代码如下所示page=open(url){|f|f.read}page_array=page.scan(/regex/)#pullspartialurlsintoanarraypartial_url=page_array[0].to_sfull_url=base_url+partial_url#addseachpartialurltoaconsistentbase_urlputsfull_url我得到的是这样的:

ruby - 从哈希返回单个键?

我想知道如何从哈希中返回特定的键?例子:moves=Hash["Kick",100,"Punch",50]我如何返回此哈希中的第一个键“Kick”?注意:我知道以下函数将返回散列中的所有键,但我只想返回一个键。moves.keys#=>["Kick","Punch"] 最佳答案 您可以使用:first_key,first_value=moves.first或等效地:first_key=moves.first.first也很不错:first_key=moves.each_key.first另一种可能性,moves.keys.first